/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ws;

import bean.BuscaChaveEstrangeira;
import bean.BuscaChaveEstrangeiraVetor;
import bean.Fornecedor;
import bean.FornecedorVetor;
import java.util.Vector;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ejb.Stateless;
import persistencia.controller.FornecedorController;

/**
 *
 * @author André
 */
@WebService(wsdlLocation = "META-INF/wsdl/FornecedorWSService.wsdl")
@Stateless()
public class FornecedorWS {

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "createFornecedor")
    public boolean createFornecedor(@WebParam(name = "fornecedor") Fornecedor fornecedor) {

        FornecedorController fc = FornecedorController.getInstance();
        return fc.createFornecedor(fornecedor);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "deleteFornecedor")
    public boolean deleteFornecedor(@WebParam(name = "codigoFornecedor") Integer codigoFornecedor) {

        FornecedorController fc = FornecedorController.getInstance();
        return fc.deleteFornecedor(codigoFornecedor);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "updateFornecedor")
    public boolean updateFornecedor(@WebParam(name = "fornecedor") Fornecedor fornecedor) {

        FornecedorController fc = FornecedorController.getInstance();
        return fc.updateFornecedor(fornecedor);
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "readFornecedorPorId")
    public Fornecedor readFornecedorPorId(@WebParam(name = "codigoFornecedor") Integer codigoFornecedor) {

        FornecedorController fc = FornecedorController.getInstance();
        Fornecedor f = fc.readFornecedorPorId(codigoFornecedor);

        if (f == null) {
            System.out.println("FornecedorWS.readFornecedorPorId retornou NULL");
            return null;
        }
        
        System.out.println("Fornecedor[PK]: " + f.getTcodFornecedorPk());
        
        return f;

    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "searchClassificacaoPorId")
    public BuscaChaveEstrangeiraVetor searchClassificacaoPorId(@WebParam(name = "sigla")
    String sigla) {

        FornecedorController fc = FornecedorController.getInstance();
        Vector<BuscaChaveEstrangeira> v = fc.searchClassificacaoPorId(sigla);

        if (v == null) {
            System.out.println("FornecedorWS.searchClassificacaoPorId retornou NULL");
            return null;
        }
        for (BuscaChaveEstrangeira i : v) {
            System.out.println(i);
        }

        BuscaChaveEstrangeiraVetor vetor = new BuscaChaveEstrangeiraVetor();
        vetor.setLista(v);
        return vetor;
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "searchClassificacaoPorNome")
    public BuscaChaveEstrangeiraVetor searchClassificacaoPorNome(@WebParam(name = "nome")
    String nome) {

        FornecedorController fc = FornecedorController.getInstance();
        Vector<BuscaChaveEstrangeira> v = fc.searchClassificacaoPorNome(nome);

        if (v == null) {
            System.out.println("FornecedorWS.searchClassificacaoPorNome retornou NULL");
            return null;
        }
        for (BuscaChaveEstrangeira i : v) {
            System.out.println(i);
        }

        BuscaChaveEstrangeiraVetor vetor = new BuscaChaveEstrangeiraVetor();
        vetor.setLista(v);
        return vetor;
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "searchCidadePorId")
    public BuscaChaveEstrangeiraVetor searchCidadePorId(@WebParam(name = "cep")
    String cep) {

        FornecedorController fc = FornecedorController.getInstance();
        Vector<BuscaChaveEstrangeira> v = fc.searchCidadePorId(cep);

        if (v == null) {
            System.out.println("FornecedorWS.searchCidadePorId retornou NULL");
            return null;
        }
        for (BuscaChaveEstrangeira i : v) {
            System.out.println(i);
        }

        BuscaChaveEstrangeiraVetor vetor = new BuscaChaveEstrangeiraVetor();
        vetor.setLista(v);
        return vetor;
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "searchCidadePorNome")
    public BuscaChaveEstrangeiraVetor searchCidadePorNome(@WebParam(name = "nome")
    String nome) {

        FornecedorController fc = FornecedorController.getInstance();
        Vector<BuscaChaveEstrangeira> v = fc.searchCidadePorNome(nome);

        if (v == null) {
            System.out.println("FornecedorWS.searchCidadePorNome retornou NULL");
            return null;
        }
        for (BuscaChaveEstrangeira i : v) {
            System.out.println(i);
        }

        BuscaChaveEstrangeiraVetor vetor = new BuscaChaveEstrangeiraVetor();
        vetor.setLista(v);
        return vetor;
    }

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "readFornecedor")
    public FornecedorVetor readFornecedor(@WebParam(name = "nomeFantasia")
    String nomeFantasia) {

        FornecedorController fc = FornecedorController.getInstance();
        Vector<Fornecedor> v = fc.readFornecedor(nomeFantasia);

        if (v == null) {
            System.out.println("FornecedorWS.readFornecedor retornou NULL");
            return null;
        }
        for (Fornecedor i : v) {
            System.out.println("Fornecedor[PK]: " + i.getTcodFornecedorPk());
        }

        FornecedorVetor vetor = new FornecedorVetor();
        vetor.setLista(v);
        return vetor;
    }

}
